(deftemplate  persoana
    (slot nume)
    (slot sex)
    (slot parinte)
    (slot partener)
    )

(assert (persoana (nume Petru)(sex M)(parinte null)(partener Veta)))
(assert (persoana (nume Veta)(sex F)(parinte null)(partener Petru)))
(assert (persoana (nume Teodor)(sex M)(parinte null)(partener Alberta)))
(assert (persoana (nume Alberta)(sex F)(parinte null)(partener Teodor)))
(assert (persoana (nume George)(sex M)(parinte Veta)(partener Maria)))
(assert (persoana (nume Maria)(sex F)(parinte Alberta)(partener George)))
(assert (persoana (nume Ionel)(sex M)(parinte Maria)(partener null)))
(assert (persoana (nume Oana)(sex F)(parinte Maria)(partener null)))
(assert (persoana (nume Miguel )(sex M)(parinte Veta)(partener null)))
(assert (persoana (nume Armando)(sex M)(parinte Veta)(partener Hans)))
(assert (persoana (nume Hans)(sex M)(parinte null)(partener Armando)))
(assert (persoana (nume Nemo)(sex M)(parinte Armando)(partener null)))
(assert (persoana (nume Vasilica)(sex F)(parinte Alberta)(partener Mirela)))
(assert (persoana (nume Mirela)(sex F)(parinte null)(partener Vasilica)))
(assert (persoana (nume Vanessa)(sex F)(parinte Vasilica)(partener null)))

(defrule mama1
    (persoana(nume ?nc)(parinte ?np))
    (persoana (nume ?np)(sex F))
    =>
    (printout t "Persoana " ?nc " are mama " ?np crlf)
    )
(run)